/**
 *扩展validatebox,添加验证两次密码功能
 *
 *requires jQuery,EasyUI
 *
 */
$.extend($.fn.validatebox.defaults.rules,{
	eqPassword:{
		validator:function(value,param){
			return value==$(param[0]).val();
		},
		message:'密码不一致！'
	}
});
//扩大easyui表单的验证
$.extend($.fn.validatebox.defaults.rules,{
    //验证汉字
    CHS: {
        validator: function (value){
            return /^[\u0391-\uFFE5]+$/.test(value);
        },
        message: '只能输入汉字'
    },
    //移下手机号码验证
    mobile: {//value值为文本框中的值
        validator: function (value){
            var reg = /^1[3|4|5|8|9]\d{9}$/;
            return reg.test(value);
        },
        message: '输入手机号码格局不正确.'
    },
    phone : {// 验证电话号码 
        validator : function(value) { 
            return /^(((d{2,3}))|(d{3}-))?((0d{2,3})|0d{2,3}-)?[1-9]d{6,7}(-d{1,4})?$/i.test(value); 
        }, 
        message : '格式不正确,请使用下面格式:020-88888888'
    }, 
    //国内邮编验证
    zipcode: {
        validator: function (value){
            var reg = /^[1-9]\d{5}$/;
            return reg.test(value);
        },
        message: '邮编必须长短0开端的6位数字.'
    },
    QQ: {
        validator: function (value, param) {
            return /^[1-9]\d{4,10}$/.test(value);
        },
        message: 'QQ号码不正确'
    },
    number: {
        validator: function (value, param) {
            return /^\d+$/.test(value);
        },
        message: '请输入数字'
    },
    idcard: {
        validator: function (value, param) {
           // return idCard(value);
            return /^\d+$/.test(value); 
        },
        message:'请输入正确的身份证号码'
    },
    name : {// 验证姓名，可以是中文或英文 
        validator : function(value) { 
            return /^[Α-￥]+$/i.test(value)|/^w+[ws]+w+$/i.test(value); 
        }, 
        message : '请输入姓名'
    },
    //用户账号验证(只能包含 _ 数字 字母)
    account: {//param的值为[]中值
        validator: function (value,param){
            if (value.length < param[0] || value.length > param[1]){
                $.fn.validatebox.defaults.rules.account.message = '用户名长度必须在' + param[0] + '至' + param[1] + '局限';
                return false;
            } else {
                if (!/^[\w]+$/.test(value)){
                    $.fn.validatebox.defaults.rules.account.message = '用户名只能数字、字母、下划线构成.';
                    return false;
                } else {
                    return true;
                }
            }
        },message: ''
    }
});
//var idCard = function (value) {
//    if (value.length == 18 && 18 != value.length) return false;
//    var number = value.toLowerCase();
//    var d, sum = 0, v = '10x98765432', w = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2], a = '11,12,13,14,15,21,22,23,31,32,33,34,35,36,37,41,42,43,44,45,46,50,51,52,53,54,61,62,63,64,65,71,81,82,91';
//    var re = number.match(/^(\d{2})\d{4}(((\d{2})(\d{2})(\d{2})(\d{3}))|((\d{4})(\d{2})(\d{2})(\d{3}[x\d])))$/);
//    if (re == null || a.indexOf(re[1]) < 0) return false;
//    if (re[2].length == 9) {
//        number = number.substr(0, 6) + '19' + number.substr(6);
//        d = ['19' + re[4], re[5], re[6]].join('-');
//    } else d = [re[9], re[10], re[11]].join('-');
//    if (!isDateTime.call(d, 'yyyy-MM-dd')) return false;
//    for (var i = 0; i < 17; i++) sum += number.charAt(i) * w[i];
//    return (re[2].length == 9 || number.charAt(17) == v.charAt(sum % 11));
//}
/*
$.extend($.fn.validatebox.defaults.rules, {
	  idcard : {// 验证身份证 
	        validator : function(value) { 
	            return /^d{15}(d{2}[A-Za-z0-9])?$/i.test(value); 
	        }, 
	        message : '身份证号码格式不正确'
	    },
	      minLength: {
	        validator: function(value, param){
	            return value.length >= param[0];
	        },
	        message: '请输入至少（2）个字符.'
	    },
	    length:{validator:function(value,param){ 
	        var len=$.trim(value).length; 
	            return len>=param[0]&&len<=param[1]; 
	        }, 
	            message:"输入内容长度必须介于{0}和{1}之间."
	        }, 
	    phone : {// 验证电话号码 
	        validator : function(value) { 
	            return /^(((d{2,3}))|(d{3}-))?((0d{2,3})|0d{2,3}-)?[1-9]d{6,7}(-d{1,4})?$/i.test(value); 
	        }, 
	        message : '格式不正确,请使用下面格式:020-88888888'
	    }, 
	    mobile : {// 验证手机号码 
	        validator : function(value) { 
	            return /^(13|15|18)d{9}$/i.test(value); 
	        }, 
	        message : '手机号码格式不正确'
	    }, 
	    intOrFloat : {// 验证整数或小数 
	        validator : function(value) { 
	            return /^d+(.d+)?$/i.test(value); 
	        }, 
	        message : '请输入数字，并确保格式正确'
	    }, 
	    currency : {// 验证货币 
	        validator : function(value) { 
	            return /^d+(.d+)?$/i.test(value); 
	        }, 
	        message : '货币格式不正确'
	    }, 
	    qq : {// 验证QQ,从10000开始 
	        validator : function(value) { 
	            return /^[1-9]d{4,9}$/i.test(value); 
	        }, 
	        message : 'QQ号码格式不正确'
	    }, 
	    integer : {// 验证整数 
	        validator : function(value) { 
	            return /^[+]?[1-9]+d*$/i.test(value); 
	        }, 
	        message : '请输入整数'
	    }, 
	    age : {// 验证年龄
	        validator : function(value) { 
	            return /^(?:[1-9][0-9]?|1[01][0-9]|120)$/i.test(value); 
	        }, 
	        message : '年龄必须是0到120之间的整数'
	    }, 
	     
	    chinese : {// 验证中文 
	        validator : function(value) { 
	            return /^[Α-￥]+$/i.test(value); 
	        }, 
	        message : '请输入中文'
	    }, 
	    english : {// 验证英语 
	        validator : function(value) { 
	            return /^[A-Za-z]+$/i.test(value); 
	        }, 
	        message : '请输入英文'
	    }, 
	    unnormal : {// 验证是否包含空格和非法字符 
	        validator : function(value) { 
	            return /.+/i.test(value); 
	        }, 
	        message : '输入值不能为空和包含其他非法字符'
	    }, 
	    username : {// 验证用户名 
	        validator : function(value) { 
	            return /^[a-zA-Z][a-zA-Z0-9_]{5,15}$/i.test(value); 
	        }, 
	        message : '用户名不合法（字母开头，允许6-16字节，允许字母数字下划线）'
	    }, 
	    faxno : {// 验证传真 
	        validator : function(value) { 
//	            return /^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$/i.test(value); 
	            return /^(((d{2,3}))|(d{3}-))?((0d{2,3})|0d{2,3}-)?[1-9]d{6,7}(-d{1,4})?$/i.test(value); 
	        }, 
	        message : '传真号码不正确'
	    }, 
	    zip : {// 验证邮政编码 
	        validator : function(value) { 
	            return /^[1-9]d{5}$/i.test(value); 
	        }, 
	        message : '邮政编码格式不正确'
	    }, 
	    ip : {// 验证IP地址 
	        validator : function(value) { 
	            return /d+.d+.d+.d+/i.test(value); 
	        }, 
	        message : 'IP地址格式不正确'
	    }, 
	    name : {// 验证姓名，可以是中文或英文 
	            validator : function(value) { 
	                return /^[Α-￥]+$/i.test(value)|/^w+[ws]+w+$/i.test(value); 
	            }, 
	            message : '请输入姓名'
	    },
	    date : {// 验证姓名，可以是中文或英文 
	        validator : function(value) { 
	         //格式yyyy-MM-dd或yyyy-M-d
	            return /^(?:(?!0000)[0-9]{4}([-]?)(?:(?:0?[1-9]|1[0-2])1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])1(?:29|30)|(?:0?[13578]|1[02])1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-]?)0?22(?:29))$/i.test(value); 
	        },
	        message : '清输入合适的日期格式'
	    },
	    msn:{ 
	        validator : function(value){ 
	        return /^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/.test(value); 
	    }, 
	    message : '请输入有效的msn账号(例：abc@hotnail(msn/live).com)'
	    },
	    same:{ 
	        validator : function(value, param){ 
	            if($("#"+param[0]).val() != "" && value != ""){ 
	                return $("#"+param[0]).val() == value; 
	            }else{ 
	                return true; 
	            } 
	        }, 
	        message : '两次输入的密码不一致！'   
	    } 
	});
	*/
/**
 *扩展tab,显示正在加载。。。
 *
 *requires jQuery,EasyUI
 *
 *2013/3/18
 */
(function () {  
    $.extend($.fn.tabs.methods, {  
        //显示遮罩  
        loading: function (jq, msg) {  
            return jq.each(function () {  
                var panel = $(this).tabs("getSelected");  
                if (msg == undefined) {  
                    msg = "正在加载数据，请稍候...";  
                }  
                $("<div class=\"datagrid-mask\"></div>").css({ display: "block", width: panel.width(), height: panel.height() }).appendTo(panel);  
                $("<div class=\"datagrid-mask-msg\"></div>").html(msg).appendTo(panel).css({ display: "block", left: (panel.width() - $("div.datagrid-mask-msg", panel).outerWidth()) / 2, top: (panel.height() - $("div.datagrid-mask-msg", panel).outerHeight()) / 2 });  
            });  
        }  
,  
        //隐藏遮罩  
        loaded: function (jq) {  
            return jq.each(function () {  
                var panel = $(this).tabs("getSelected");  
                panel.find("div.datagrid-mask-msg").remove();  
                panel.find("div.datagrid-mask").remove();  
            });  
        }  
    });  
})(jQuery); 


/**
 * @author 孙宇
 * 
 * @requires jQuery,EasyUI
 * 
 * 防止panel/window/dialog组件超出浏览器边界
 * @param left
 * @param top
 */
var easyuiPanelOnMove = function(left, top) {
	var l = left;
	var t = top;
	if (l < 1) {
		l = 1;
	}
	if (t < 1) {
		t = 1;
	}
	var width = parseInt($(this).parent().css('width')) + 14;
	var height = parseInt($(this).parent().css('height')) + 14;
	var right = l + width;
	var buttom = t + height;
	var browserWidth = $(window).width();
	var browserHeight = $(window).height();
	if (right > browserWidth) {
		l = browserWidth - width;
	}
	if (buttom > browserHeight) {
		t = browserHeight - height;
	}
	$(this).parent().css({/* 修正面板位置 */
		left : l,
		top : t
	});
};
$.fn.dialog.defaults.onMove = easyuiPanelOnMove;
$.fn.window.defaults.onMove = easyuiPanelOnMove;
$.fn.panel.defaults.onMove = easyuiPanelOnMove;